技術的負債という概念の生みの親 Ward Cunningham 自身による説明
以下、翻訳文からいくつか抜粋。
上司に説明するとき、(WyCash が)金融系ソフトウェアだったので金融の例え話を使い、それを「負債のメタファー」と名付けました。どういうことかというと、「もしも自分たちが書いているプログラム(WyCash)を、金融の世界に関する正しい捉え方だと自分たちが理解した姿と一致させることができなくなれば、自分たちは絶えずその不一致につまずき続けることになり、開発スピードは遅くなっていくでしょう。それはまるで借金の利子を払い続けるかのようです」と説明したのです。
借入をすれば物事をより早く前に進めることができるようになりますが、そのかわり返済し終えるまでは利子を払い続けることにもなります。私はお金を借りるのは良いアイデアだと、つまりソフトウェアを急いで世に出し、それによって学びを得るのは良いアイデアだと考えていました。次第に日常に戻ってきたら、もちろん借金を返済していくことになるでしょう。つまり、そのソフトウェアについての学びを深めるにつれてリファクタリングを行うことで、得られた経験をプログラムに反映していくのです。
訳してみて驚くのは、 Ward Cunningham が言っていることが一般的にイメージされている「技術的負債」とは結構違うことです。
「負債」という言葉は、経営に近い人ほどポジティブな印象を持ち(資本のイメージ)、純粋な技術面に近い人ほどネガティブな印象を抱く(借金のイメージ)傾向があるように思われます。Ward が語っている負債のメタファーはどちらかというとポジティブなものです。ソフトウェアを素早く何度もリリースし、経験や仮説検証から学びを得る開発手法は、現代では一般的なものになりつつあります。しかも Ward が負債の比喩を使ったのは、たまたま彼と彼の説明相手が同じ金融系ソフトウェアを開発していたからなのでした。しかしその後「負債」という強い言葉が独り歩きして、現在の技術的負債のイメージを作り上げたのではないでしょうか。
kdmsnr 先輩も駆けつけていて便利だなあ。こういったお話を日本語で読めたのは幸運としか言いようがない。ありがとうございます。自分も、もっと源流に当たらないといかんな…と反省した回でもあった。